import fitz  # PyMuPDF 的主模块

# 打开一个 PDF 文件
pdf_path = "example.pdf"  # 替换为你的 PDF 文件路径
doc = fitz.open(pdf_path)

# 打印 PDF 的总页数
print(f"PDF 总页数: {doc.page_count}")

# 遍历每一页提取文本
for page_num in range(doc.page_count):
    page = doc[page_num]  # 获取第 page_num 页
    text = page.get_text()  # 提取文本
    print(f"第 {page_num + 1} 页内容:\n{text}")

# 提取页面的图像
for page_num in range(doc.page_count):
    page = doc[page_num]
    images = page.get_images(full=True)  # 获取页面上的所有图像
    for img_index, img in enumerate(images):
        xref = img[0]  # 获取图像的 XREF
        base_image = doc.extract_image(xref)  # 提取图像数据
        image_bytes = base_image["image"]  # 图像的二进制数据
        image_ext = base_image["ext"]  # 图像的格式
        image_filename = f"page-{page_num + 1}-img-{img_index + 1}.{image_ext}"
        
        # 保存图像到文件
        with open(image_filename, "wb") as f:
            f.write(image_bytes)
        print(f"图像已保存: {image_filename}")

# 创建一个新的 PDF 并保存
new_doc = fitz.open()  # 创建一个新的空文档
new_page = new_doc.new_page()  # 添加一页
new_page.insert_text((72, 72), "Hello, PyMuPDF!", fontsize=12)  # 插入文本
new_doc.save("output.pdf")  # 保存文档
print("新 PDF 已保存: output.pdf")

# 关闭文档
doc.close()
new_doc.close()
